#多态的使用
class Animal:
    def cry(self):
        pass

class Cat(Animal):
    def cry(self):
        print("小猫喵喵叫..")

class Dog(Animal):
    def cry(self):
        print("小狗,汪汪叫...")

class Pig(Animal):
    def cry(self):
        print("小猪,噜噜叫...")

#定义一个固定的方法
#对于参数注解,可以写也可以不写
def func(animal : Animal):
    print(f"animal的类型是{type(animal)}")
    animal.cry()

#创建对象
# cat = Cat()
# dog = Dog()
# pig = Pig()
#
# #调用函数
# func(cat)
# func(dog)
# func(pig)


#---下面定义了两个类...都有相同的方法

class AA:
    def hi(self):
        print("AA-hi()...")

class BB:
    def hi(self):
        print("BB-hi()")

#定义一个方法，用来处理多态
#python语言 其实本身就是多态的
def test(obj):
    obj.hi()

aa = AA()
bb = BB()
test(aa)
test(bb)





